<?php
/**
 ***********************************************************************************************************************
 * 推送服务
 ***********************************************************************************************************************
 */
namespace soa\message;

use soa\client;

/**
 * Class push
 */
class push extends client
{
    /**
     * 服务地址
     * @var string
     */
    public $service_url = 'http://message.core.kuaidihelp.com/';

    /**
     * 服务名称
     * @var string
     */
    protected $service_name = 'kuaidihelp_message';

    /**
     * 推送
     * @param $courier_id
     * @return bool|null
     */
    public function send($user_id, $user_type, $push_data)
    {
        if (empty($user_id) || empty($user_type) || empty($push_data)) {
            return false;
        }
        if (empty($push_data['title']) || empty($push_data['description'])) {
            return false;
        }
        $push_data['user_id'] = $user_id;
        if ($user_type == 'courier') {
            return $this->get('v1/push/courier', $push_data);
        } elseif ($user_type == 'weikuaidi') {
            return $this->get('v1/push/weikuaidi', $push_data);
        } elseif ($user_type == 'sto') {
            return $this->get('v1/push/sto', $push_data);
        }
        return false;
    }

    /**
     * @param $courier_id
     * @param array $msg
     * @return bool
     */
    public function toCourierByUid($courier_id, array $msg)
    {
        if (empty($courier_id) || !is_numeric($courier_id) || empty($msg) || empty($msg['message_type']) || empty($msg['title']) || empty($msg['description'])) {
            return false;
        }
        return $this->get('v1/push/courier', array_merge($msg, ['user_id' => $courier_id])) ? true : false;
    }

    /**
     * @param $imei
     * @param array $msg
     * @return bool
     */
    public function toCourierByImei($imei, array $msg)
    {
        if (empty($imei) || !is_string($imei) || empty($msg) || empty($msg['message_type']) || empty($msg['title']) || empty($msg['description'])) {
            return false;
        }
        return $this->get('v1/push/courier', array_merge($msg, ['imei' => $imei])) ? true : false;
    }

    /**
     * @param $user_id
     * @param array $msg
     * @return bool
     */
    public function toUserByUid($user_id, array $msg)
    {
        if (empty($user_id) || !is_numeric($user_id) || empty($msg) || empty($msg['message_type']) || empty($msg['title']) || empty($msg['description'])) {
            return false;
        }
        return $this->get('v1/push/courier', array_merge($msg, ['user_id' => $user_id])) ? true : false;
    }

    /**
     * @param $imei
     * @param array $msg
     * @return bool
     */
    public function toUserByImei($imei, array $msg)
    {
        if (empty($imei) || !is_string($imei) || empty($msg) || empty($msg['message_type']) || empty($msg['title']) || empty($msg['description'])) {
            return false;
        }
        return $this->get('v1/push/weikuaidi', array_merge($msg, ['imei' => $imei])) ? true : false;
    }

    /**
     * @param $user_id
     * @param array $msg
     * @return bool
     */
    public function toStoUserByUid($user_id, array $msg)
    {
        if (empty($user_id) || !is_numeric($user_id) || empty($msg) || empty($msg['message_type']) || empty($msg['title']) || empty($msg['description'])) {
            return false;
        }
        return $this->get('v1/push/sto', array_merge($msg, ['user_id' => $user_id])) ? true : false;
    }

    /**
     * @param $imei
     * @param array $msg
     * @return bool
     */
    public function toStoUserByImei($imei, array $msg)
    {
        if (empty($imei) || !is_string($imei) || empty($msg) || empty($msg['message_type']) || empty($msg['title']) || empty($msg['description'])) {
            return false;
        }
        return $this->get('v1/push/sto', array_merge($msg, ['imei' => $imei])) ? true : false;
    }
}